# locust777


////整数提升
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	char a = 0xb6;
//	short b = 0xb600;//只输出了b
//	int c = 0xb000000;
//	if(a == 0xb6)
//		printf("a");
//	if(b = 0xb600)  
//		printf("b");//b
//	if(c == 0xb6000000)
//		printf("c");
//	system("pause");
//return 0;
//}


//
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	char c =1;//char是字符类型，一个字节  //%u无符号数
//	printf("%u\n",sizeof(c));//1   //后期进行整数提升演练
//	printf("%u\n",sizeof(+c));//4
//	printf("%u\n",sizeof(-c));//4
//system("pause");
//return 0;
//}



//算数转换

//两个相邻的操作符先执行那一个？取决于他们的优先级，如果两者优先级相同，那么取决于他们的结合性，操作符优先升级

/*
表达式1
a*b + c*d + e*f
 1  3  2  5  4  可以  
 1  4  2  5  3  也可以

 表达式2
 c + --c;
 -------
 2 +  1 == 3;
 1 +  1 == 2;
 int c = 2;
 */


//注释：上述表达式1中，由于*比+的优先级高，只能保证，*的计算是比+早，但优先级并不能决定第三个*比第一个+要早
//注意相邻两个字


////输出上述两个表达式
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = 3;
//	int d = 4;
//	int e = 5;
//	int f = 6;
//	printf("%d\n",a*b + c*d + e*f);//44
//	//            2 +  12  + 30  == 44  //表达式1第一种
//	printf("%u\n", c + --c);//4
//	//             2 + 2  ==  4  //表达式2第二种
//system("pause");
//return 0;
//}




//代码3 -- 非法表达式
#include<stdio.h>
#include<windows.h>

int main()
{
	int i = 10;
	i = i-- + --i * (i = -3) * i++ + ++i;
	//各种编译器会输出不同的结果
	printf("i = %d\n",i);//-12
system("pause");
return 0;
}


//
//代码4
///

